Developer --> Technical Publications
PATHHardware Documentation > USB Devices > Mac OS USB DDK API Reference


The Isochronous Version Of The USBPB

This section lists the isochronous version 1.1 USBPB parameter block, and discusses things to be aware of when using the isochronous variant of the USBPB .

The isochronous version 1.1 USBPB structure is defined as:

struct USBIsocFrame {
    OSStatus frStatus;    /* Frame status information */
    UInt16 frReqCount;    /* Bytes to transfer */
    UInt16 frActCount;    /* Actual bytes transferred */
};

struct usbIsocBits {
    USBIsocFrame *FrameList;
    UInt32 NumFrames;
};

struct usbControlBits {
    UInt8 BMRequestType;    /* For control transactions */
    UInt8 BRequest;         /* Specific control request */
    USBRqValue WValue;      /* For control transactions, the */
                           /* value field of the setup packet */
    USBRqIndex WIndex;      /* For control transactions, the */
                           /* value field of the setup packet */
    UInt16 reserved4;       /* Reserved */
};

struct USBPB{
    void *qlink;
    UInt16 qType;
    UInt16 pbLength;               /* Length of parameter block */
    UInt16 pbVersion;              /* Parameter block version number */
                                 /* kUSBIsocPBVersion for iscohronous */
                                  /* version 1.1 USBPB */
    UInt16 reserved1;              /* Reserved */
    UInt32 reserved2;              /* Reserved */

    OSStatus usbStatus;            /* Completion status of the call */
    USBCompletion usbCompletion;    /* Completion routine */
    UInt32 usbRefcon;              /* For use by the completion routine */
    USBReference usbReference;     /* Device, pipe, interface, endpoint */
                                 /* reference as appropriate */

    void *usbBuffer;               /* Pointer to the data to be sent */
                                 /* to or received from the device */
    USBCount usbReqCount;         /* Length of usbBuffer */
    USBCount usbActCount;          /* Number of bytes sent or received */
    USBFlags usbFlags;             /* Miscellaneous flags */

    UInt32 usbFrame;              /* Start frame of transfer */

union{
    usbControlBits cntl;          /* usbControlBits struct */
                                 /* used for control transactions */
    usbIsocBits isoc;             /* usbIsocBits frames structure */
}usb;

    UInt8 usbClassType;           /* Class for interfaces, */
                                 /* transfer type for endpoints */
    UInt8 usbSubclass;             /* Subclass for interfaces */
    UInt8 usbProtocol;             /* Protocol for interfaces */
    UInt8 usbOther;                /* General purpose value */
    UInt32 reserved6;              /* Reserved */
    UInt16 reserved7;              /* Reserved */
    UInt16 reserved8;              /* Reserved */

    }USBPB;


© 1998 Apple Computer, Inc. – (Last Updated 23 Nov 98)

Previous | Back Up One Level | Next |